#include <iostream>
#include <gtest/gtest.h>

/**
 * gtest断言宏，只能在单元测试宏中使用
 * ASSERT_* 断言失败则退出
 * EXPECT_* 断言失败继续运行
 * 
 * 测试套件：一个测试环境，测试开始前后初始化和清理环境
 * 全局测试套件：整个测试只会初始化，清理一次环境（自定义测试环境类，继承testing::Environment）
 * 用例测试套件：每次单元测试都初始化，清理环境
 * 独立测试套件：与当前测试套件相关的单元测试可以访问测试环境类中的共有成员（TEST_F(测试环境类名, 测试名)）
*/

TEST(test, greaterThan) 
{
    int age = 20;
    ASSERT_GT(age, 18);
    std::cout << "ok" << std::endl;
}

TEST(test, lessThan) 
{
    int age = 20;
    ASSERT_LT(age, 18);
    std::cout << "ok" << std::endl;
}

int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    RUN_ALL_TESTS();

    return 0;
}